package com.pzb.market.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.pzb.market.mapper.MkCouponMapper;
import com.pzb.market.domain.MkCoupon;
import com.pzb.market.service.IMkCouponService;

/**
 * 优惠券Service业务层处理
 * 
 * @author pzb
 * @date 2021-10-11
 */
@Service
public class MkCouponServiceImpl implements IMkCouponService 
{
    @Autowired
    private MkCouponMapper mkCouponMapper;

    /**
     * 查询优惠券
     * 
     * @param id 优惠券主键
     * @return 优惠券
     */
    @Override
    public MkCoupon selectMkCouponById(Long id)
    {
        MkCoupon mkCoupon=mkCouponMapper.selectMkCouponById(id);
        if ("1".equals(mkCoupon.getAvailableGoods())) {
            List<Long> classIds=mkCouponMapper.selectClassIdByCouponId(id);
            mkCoupon.setClassIds(classIds);
        }
        return mkCoupon;
    }

    /**
     * 查询优惠券列表
     * 
     * @param mkCoupon 优惠券
     * @return 优惠券
     */
    @Override
    public List<MkCoupon> selectMkCouponList(MkCoupon mkCoupon)
    {
        return mkCouponMapper.selectMkCouponList(mkCoupon);
    }

    /**
     * 新增优惠券
     * 
     * @param mkCoupon 优惠券
     * @return 结果
     */
    @Override
    public int insertMkCoupon(MkCoupon mkCoupon)
    {
        return mkCouponMapper.insertMkCoupon(mkCoupon);
    }

    /**
     * 修改优惠券
     * 
     * @param mkCoupon 优惠券
     * @return 结果
     */
    @Override
    public int updateMkCoupon(MkCoupon mkCoupon)
    {
        //删除原有分类
        mkCouponMapper.deleteCouponClassByCouponId(mkCoupon.getId());
        if("1".equals(mkCoupon.getAvailableGoods())){
            //添加新的分类
            if(mkCoupon.getClassIds()!=null && mkCoupon.getClassIds().size()>0){
                mkCouponMapper.batchSaveCouponClass(mkCoupon);
            }
        }
        return mkCouponMapper.updateMkCoupon(mkCoupon);
    }

    /**
     * 批量删除优惠券
     * 
     * @param ids 需要删除的优惠券主键
     * @return 结果
     */
    @Override
    public int deleteMkCouponByIds(Long[] ids)
    {
        //删除商品分类关联
        mkCouponMapper.deleteCouponClassByCouponIds(ids);
        //删除商品关联
        mkCouponMapper.deleteMkCouponGoodsByCouponIds(ids);

        return mkCouponMapper.deleteMkCouponByIds(ids);
    }

    @Override
    public int insertMkCouponGoods(MkCoupon mkCoupon) {
        //先删除原有
        mkCouponMapper.deleteMkCouponGoodsByCouponId(mkCoupon.getId());
        return mkCouponMapper.batchInsertCouponGoods(mkCoupon);
    }

    @Override
    public int deleteMkCouponGoodsByIds(Long[] ids) {
        return mkCouponMapper.deleteMkCouponGoodsByIds(ids);
    }

}
